const path = require('path');
const AutoImport = require('unplugin-auto-import/webpack')
const Components = require('unplugin-vue-components/webpack')
const Icons = require('unplugin-icons/webpack')
const IconsResolver = require('unplugin-icons/resolver')
const {
  ElementPlusResolver
} = require('unplugin-vue-components/resolvers')

const pathSrc = path.resolve(__dirname, 'src')

module.exports = {
  transpileDependencies: true,
  publicPath: './',
  outputDir: 'dist',
  pages: {
    index: {
      // page 的入口
      entry: 'src/main.js',
      // 模板来源
      template: 'public/index.html',
      // 在 dist/index.html 的输出
      filename: 'index.html',
      // 当使用 title 选项时，
      // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
      title: 'Index Page',
      // 在这个页面中包含的块，默认情况下会包含
      // 提取出来的通用 chunk 和 vendor chunk。
      chunks: ['chunk-vendors', 'chunk-common', 'index']
    },
    // 当使用只有入口的字符串格式时，
    // 模板会被推导为 `public/subpage.html`
    // 并且如果找不到的话，就回退到 `public/index.html`。
    // 输出文件名会被推导为 `subpage.html`。
    // subpage: 'src/subpage/main.js'
  },

  lintOnSave: false,
  productionSourceMap: process.env.NODE_ENV !== 'production',
  configureWebpack: {
    plugins: [
      AutoImport({
        resolvers: [
          ElementPlusResolver(),
          IconsResolver({
            prefix: 'Icons',
          }),
        ],
      }),
      Components({
        resolvers: [
          // Auto register icon components
          // 自动注册图标组件
          IconsResolver({
            enabledCollections: ['ep'],
          }),
          ElementPlusResolver()
        ],
      }),
      Icons({
        autoInstall: true,
      }),
    ]
  },
  chainWebpack(config) {
    const oneOfsMap = config.module.rule('scss').oneOfs.store
    oneOfsMap.forEach((item) => {
      item
        .use('sass-resources-loader')
        .loader('sass-resources-loader')
        .options({
          resources: './src/assets/css/default.scss' //相对路径
        })
        .end()
    })
  },
  devServer: {
    host: 'localhost',
    port: 8006, // 本地服务端口
    proxy: {
      '/admin': {
        target: 'http://192.168.101.17:3001',
        changeOrigin: true,
        pathRewrite: {
          '^/admin': ''
        }
      }
    }
  },
}